#!/usr/bin/env bash

# ----------------------------------------------------------------------
# Filename:   01-packages-desktop.sh
# Version:    1.0
# Date:       2020/04/23
# Author:     Lz
# Email:      lz843723683@163.com
# History：     
#             Version 1.0, 2020/04/22
# Function:   packages - 01.测试金风桌面版本包列表需求
# Out:        
#              0 => TPASS
#              1 => TFAIL
#              other=> TCONF
# ----------------------------------------------------------------------

## TODO : 测试收尾清除工作
#
PkgClean_FTGW_DESKTOP(){
	return $TPASS
}


## TODO: 调用程序退出函数
#    In: $1 => 调用脚本结果值
PkgExit_FTGW_DESKTOP(){
        # 调用退出函数，其中调用了clean相关函数
	Exit_FTLIB ${1}
}


## TODO: 用户界面
#
PkgUSAGE_FTGW_DESKTOP(){
	USAGE_FTLIB "金风桌面版本 - 包列表需求"
}


## TODO : 测试前的初始化 
#  Out  : 
#         0 => TPASS
#         1 => TFAIL
#         other=> TCONF
PkgInit_FTGW_DESKTOP(){
        # 调用初始化函数
	Init_FTLIB "PkgClean_FTGW_DESKTOP"
        # 调用用户界面函数
 	PkgUSAGE_FTGW_DESKTOP
}


## TODO ：默认集成mono，并且版本为5.4
#
PkgTest01_FTGW_DESKTOP(){
	Mono_FTGENREQ
}


## TODO ：默认集成java，并且版本为1.8.0_162
#
PkgTest02_FTGW_DESKTOP(){
	JavaVersion_FTGENREQ
}


## TODO ：1. 存在"node-v8.10.0-linux-x64"文件夹
#         2. 环境变量打印包含：/opt/goldwind/viewSoftware/node-v8.10.0-linux-x64/bin/
#
PkgTest03_FTGW_DESKTOP(){
	Node_FTGENREQ
}


## TODO ：1. /opt/goldwind/Agent目录下包含最新Agent.jar 
#	  2. 开机自动运行
#
PkgTest04_FTGW_DESKTOP(){
	NewAgent_FTGENREQ
}


## TODO ：默认安装Ntp，并且服务能够正常启动
#
PkgTest05_FTGW_DESKTOP(){
	InstallNtp_FTGENREQ
}


## TODO ：1. 默认安装gcc,gcc-c++,compat-libstdc++,Smplayer、Mplayer、Libreoffice、Expect、Chromium、Postgresql-devel、Postgresql-libs
#         2. Chromium升级到79版本，默认56版本不能播报语音
#
PkgTest06_FTGW_DESKTOP(){
	local pkgArr="gcc gcc-c++ compat-libstdc++ smplayer mplayer libreoffice expect chromium postgresql-devel postgresql-libs"

	PkgExistArr_FTLIB "isExist" "no" "yes" "$pkgArr"
	RetParse_FTLIB "要求默认安装：${pkgArr}" "False"

	# Chromium升级到79版本，默认56版本不能播报语音
	local cmd="chromium-browser"
	VersionEQTest_FTLIB "$cmd" "--version" "Chromium 79"
}


## TODO ：默认关闭或者未提供服务：bluetooth、cups 、postfix、rpcbind、avihi-daemon
#
PkgTest07_FTGW_DESKTOP(){
        local svcArr="bluetooth cups postfix rpcbind avihi-daemon"
	
	SvcEnableArr_FTLIB "noEnable" "no" "$svcArr"
	RetParse_FTLIB "要求默认关闭或者未提供服务：$svcArr" "False"
}


## TODO ：默认开启防火墙
#
PkgTest08_FTGW_DESKTOP(){
        local svcname="firewalld"

        # 判断服务是否激活
        SvcActive_FTLIB "isActive" "no" "${svcname}"
        RetParse_FTLIB "已启动${svcname}服务" "False"

        # 开机自启动
        SvcEnable_FTLIB "isEnable" "no" "${svcname}"
        RetParse_FTLIB "开机自启动${svcname}服务" "False"
}


## TODO ：pango需要从1.42.1降级到1.40.4
#
PkgTest09_FTGW_DESKTOP(){
        local pkgname="pango"

        PkgExist_FTLIB "isExist" "no" "yes" "${pkgname}"
        RetParse_FTLIB "集成${pkgname}相关包" "False"

	# 判断版本号
	VersionEQTest_FTLIB "pango-view" "--version" "1.40.4"
}


## TODO ：默认kdump默认自启，并且运行正常
#
PkgTest10_FTGW_DESKTOP(){
        #  默认自启动kdump
        local svcname="kdump"

        # 判断是否存在svcname
        SvcExist_FTLIB "isExist" "no" "${svcname}"
        RetParse_FTLIB "存在 ${svcname} 服务" "False"

        # 判断 svcname 是否默认自启动
        SvcEnable_FTLIB "isEnable" "no" "${svcname}"
        RetParse_FTLIB "自启动 ${svcname} 服务" "False"

        # 判断 svcname 是否已经打开
        SvcActive_FTLIB "isActive" "no" "${svcname}"
        RetParse_FTLIB "已启动${svcname}服务" "False"
}


## TODO ：1. gd_Kylin_agent 服务必须存在
#         2. gd_kylin_agent 默认不能自启动
#
PkgTest11_FTGW_DESKTOP(){
	local svcname="gd_kylin_agent"

        # 判断是否存在svcname
	SvcExist_FTLIB "isExist" "no" "${svcname}"
        RetParse_FTLIB "存在 ${svcname} 服务" "False"

        # 判断 svcname 是否默认自启动
        SvcEnable_FTLIB "noEnable" "no" "${svcname}"
        RetParse_FTLIB "要求不自启动 ${svcname} 服务" "False"
}


## TODO : Main
#  Out  : 
#         0 => TPASS
#         1 => TFAIL
#         other => TCONF
PkgMain_FTGW_DESKTOP(){
	PkgInit_FTGW_DESKTOP

	PkgTest01_FTGW_DESKTOP

	PkgTest02_FTGW_DESKTOP

	PkgTest03_FTGW_DESKTOP

	PkgTest04_FTGW_DESKTOP

	PkgTest05_FTGW_DESKTOP

	PkgTest06_FTGW_DESKTOP

	PkgTest07_FTGW_DESKTOP

	PkgTest08_FTGW_DESKTOP

	PkgTest09_FTGW_DESKTOP

	PkgTest10_FTGW_DESKTOP

	PkgTest11_FTGW_DESKTOP

	return ${TPASS}	
}

PkgMain_FTGW_DESKTOP
PkgExit_FTGW_DESKTOP $?
